Skip to content

CI: Add release workflow #39

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Sep 28, 2021
Merged

CI: Add release workflow #39

merged 6 commits into from
Sep 28, 2021

Conversation

polldo
Copy link
Contributor

@polldo polldo commented Sep 27, 2021

Motivation

A new release should be generated on every push of a tag named with a version format. This makes the project distribution easier.

Change description

Add a github workflow that uses a Taskfile to cross-compile the project for the main operating systems.
The gon configuration, used to notarize the binary for mac-os, has been fixed.

the steps of the release workflow are:

  • Build the project for all supported platforms.
  • Use gon to sign and notarize the macOS build.
  • Create a GitHub release.
    • Builds and checksums are attached as release assets
    • Folder containing provisioning binaries is attached to each build.
    • A changelog generated by `arduino/create-changelog from the commit history is added to the release description
    • If the tag has a pre-release version suffix, the GitHub release will be marked as a pre-release.

Additional Notes

At the moment, builds are not uploaded to Arduino's downloads server.

TODO list for the future:

  • Enable uploads to Arduino's downloads server
  • Remove the provisioning binaries folder, as soon as a new mechanism for downloading provisioning binaries is introduced
  • Add the LICENSE.txt to the builds, as soon as we have it

Reviewer checklist

  • PR address a single concern.
  • PR title and description are properly filled.
  • Changes will be merged in main.
  • Changes are covered by tests.
  • Logging is meaningful in case of troubleshooting.
  • History is clean, commit messages are meaningful (see CONTRIBUTING.md) and are well formatted.

Copy link
Contributor

@glumia glumia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested some minor improvements, a totally optional change (... 😆 ) and added some questions. Overall it's ok for me!

Some feedbacks regarding the pull request description:

  • "A new release is generated on every push..." is a short description of the feature we are introducing, not the motivation of why we need it (e.g. "stakeholders would like to be able to download a binary for their platform as soon as a new version is tagged").

  • Change description is only a summary of the release workflow.

    This is valuable information, but what I would expect to see in this section is a brief description of all the changes introduced by the pull request.

    In this case, something like:

    • Add release Github workflow
    • Add tests Github workflow
    • Add task files to test and build the tool
    • Add gon configuration to sign MacOS binaries as ARDUINO SA (7KT7ZWMCJT).
  • Additional Notes is actually fine :)
    We could improve it by adding a reference to its Jira issue IOT-1333 and the cloud cli rfc

@polldo
Copy link
Contributor Author

polldo commented Sep 28, 2021

@glumia thanks for feedbacks, I tried to integrate them but... If you believe that workflows should be treated better, can you please make a PR to clean/improve them? Thanks

@polldo polldo merged commit f3d8bf0 into main Sep 28, 2021
@polldo polldo deleted the polldo/ci-release branch September 28, 2021 17:27
polldo added a commit that referenced this pull request Sep 2, 2022
Add a github workflow that uses a Taskfile to cross-compile the project for the main operating systems.
The gon configuration, used to notarize the binary for mac-os, has been fixed.
A new release will be generated on every push of a tag named with a version format.


* CI: Add release workflow

* Disable upload to aws

* Enable macos notarization

* Edit release archive (- license, + binaries)

* Fix release version

* Add todos
polldo added a commit that referenced this pull request Sep 2, 2022
Add a github workflow that uses a Taskfile to cross-compile the project for the main operating systems.
The gon configuration, used to notarize the binary for mac-os, has been fixed.
A new release will be generated on every push of a tag named with a version format.


* CI: Add release workflow

* Disable upload to aws

* Enable macos notarization

* Edit release archive (- license, + binaries)

* Fix release version

* Add todos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants